qx.Class.define("caraffa.widgets.TurnoCirugia",
{
	extend : qx.ui.window.Window,
	events:
	{
    "turnoCargado" : "qx.event.type.Data"
	},
    construct : function (titulo, fecha, turno){
    	this.turno = turno;
		this.base(arguments);

		// RPC
		this.rpcCirugia = new qx.io.remote.Rpc();
		this.rpcCirugia.setTimeout(10000);
		this.rpcCirugia.setUrl("services/");
		this.rpcCirugia.setServiceName("cirugias");		
		try{
			var cargaForm = this.rpcCirugia.callSync("cargaForm");
			this.resMed = cargaForm.resMed;
			this.resCir = cargaForm.resCir;
			//this.resPac = cargaForm.resPac;
		}
		catch(ex){
			alert("Error: " + ex);
		}
		// FORM
			this.setLayout(new qx.ui.layout.VBox(10));
			this.setCaption(titulo);
			this.setShowStatusbar(false);
			this.setModal(false);
			this.setMovable(true);
			this.setResizable(false);
			this.setShowMaximize(false);
			this.setShowMinimize(false);
			this.moveTo(520,200);
			//this.cmbDocNro = new qx.ui.form.ow.ComboFind("Paciente:", this.resPac,true);
			if (turno) {
				this.cmbDocNro = new qx.ui.form.ow.ComboBox("Paciente:");
			} else {
				this.cmbDocNro = new qx.ui.form.ow.ComboFind("Paciente:");
				this.cmbDocNro.setRemoteData("pacientes", "getPacientes");
			}
			this.cmbClinica = new qx.ui.form.ow.ComboBox("Clinica:", [{value:"1", label:"ZIPOLI"}, {value:"2", label:"AVELLANEDA"}],true);
			this.cmbCirugias = new qx.ui.form.ow.ComboFilter("Cirugía:",this.resCir, true);
			this.rdbOjo = new qx.ui.form.ow.Radios("Ojo:",[{value:"I",label:"Izq."}, {value:"D",label:"Der."}],true);
			this.txaObservaciones = new qx.ui.form.ow.TextArea("Obs. Cirugía:");
				this.txaObservaciones.getText().setHeight(45);
			this.txaObservacionesFactura = new qx.ui.form.ow.TextArea("Obs. Facturación:");
				this.txaObservacionesFactura.getText().setHeight(45);				
			this.cmbDoctor = new qx.ui.form.ow.ComboFilter("Doctor:",this.resMed,true);
			this.txdFechaTC = new qx.ui.form.ow.DateText("Fec. Operación");
				this.txdFechaTC.setValue(fecha);
			this.txtHora = new qx.ui.form.ow.TextField("Citado a la Hora:");
			this.txtReferencia = new qx.ui.form.ow.TextField("Referencia:");
			this.rdbConfirma = new qx.ui.form.ow.Radios("Confirma:",[{value:"N",label:"No"}, {value:"S",label:"Si"}],true);
			
			this.botonera = new qx.ui.groupbox.GroupBox();
				this.botonera.setLayout(new qx.ui.layout.HBox(30).set({alignX:"center"}));
					this.btnAceptar = new qx.ui.form.Button("Aceptar");
					this.btnCancelar = new qx.ui.form.Button("Cancelar");
				this.botonera.add(this.btnAceptar);
				this.botonera.add(this.btnCancelar);
							
			this.add(this.cmbDocNro);
			this.add(this.cmbClinica);
			this.add(this.cmbCirugias);
			this.add(this.rdbOjo);
			this.add(this.txaObservaciones);
			this.add(this.txaObservacionesFactura);
			this.add(this.cmbDoctor);
			this.add(this.txdFechaTC);
			this.add(this.txtHora);
			this.add(this.txtReferencia);
			this.add(this.rdbConfirma);
			this.add(this.botonera);
			

			if(this.turno != false){
				try{
					var params = new Object();
						params.cod_turno = this.turno;
					var resModi = this.rpcCirugia.callSync("cargaFormModi", params);
					//this.cmbDocNro.setValue(resModi[0].dni_paciente);
					this.cmbDocNro.addValue({value:resModi[0].dni_paciente});
					this.cmbDocNro.setEnabled(false);
					this.cmbClinica.setValue(resModi[0].cod_clinica);
					this.cmbCirugias.setValue(resModi[0].cod_prestacion);
					this.rdbOjo.setValue(resModi[0].ojo);
					this.txaObservaciones.setValue(resModi[0].observaciones);
					this.txaObservacionesFactura.setValue(resModi[0].observaciones_factura);
					this.cmbDoctor.setValue(resModi[0].dni_usuario);
					this.txdFechaTC.setValue(resModi[0].fecha_asignada);
					this.txtHora.setValue(resModi[0].hora_citado);
					this.txtReferencia.setValue(resModi[0].referencia);
					this.rdbConfirma.setValue(resModi[0].confirma);
				}
				catch(ex){
					alert("Error: " + ex);
				}			
			}
			// EVENTS
			this.btnCancelar.addListener('execute', this.cancelar, this);
			this.btnAceptar.addListener('execute', this.Aceptar, this);
	},
    members :{
    	
		cancelar: function(){
			this.close();
		},
		//RPC
		Aceptar: function(){
				var params = new Object();
				params.dni_paciente = this.cmbDocNro.getValue();
				params.cod_clinica = this.cmbClinica.getValue();
				params.cod_prestacion = this.cmbCirugias.getValue();
				params.ojo = this.rdbOjo.getValue();
				params.observaciones = this.txaObservaciones.getValue();
				params.observaciones_factura = this.txaObservacionesFactura.getValue();
				params.dni_usuario = this.cmbDoctor.getValue();
				params.fecha_asignada = this.txdFechaTC.getValueToSQL();
				params.hora_citado = this.txtHora.getValue();
				params.referencia = this.txtReferencia.getValue();
				params.confirma = this.rdbConfirma.getValue();
				
				if(params.dni_paciente == null || params.cod_clinica == null  || params.dni_usuario == null  || params.cod_prestacion == null){
					alert("Falta completar datos");
				}
				else{
					try{
						if(this.turno == false){
							params.accion = "crear";
						}
						else{
							params.cod_turno = this.turno;
							params.accion = "modificar";
						}
						
						this.rpcCirugia.callSync("CrearTurno", params );
						this.fireDataEvent('turnoCargado');
						this.close();
						}
						catch(ex){
							alert("Error: " + ex);
						}

				}
		}
    }
});
